package com.gshrms.setting.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.gshrms.common.annotation.Excel;
import com.gshrms.common.core.domain.CommonEntity;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.Date;

/**
 * 自定义字段对象 staff_info_field
 * 
 * @author ruoyi
 * @date 2024-11-13
 */
public class StaffInfoField extends CommonEntity
{
    private static final long serialVersionUID = 1L;

    /** 自定义字段ID */
    @TableId(type = IdType.AUTO)
    private Long fieldId;

    /** 自定义明细ID */
    @Excel(name = "自定义明细ID")
    private Long tableId;

    @TableField(exist = false)
    private String tableName;

    /** 自定义字段标识 */
    @Excel(name = "自定义字段标识")
    private String fieldKey;

    /** 自定义字段名称 */
    @Excel(name = "自定义字段名称")
    private String fieldName;

    /** 字段描述 */
    @Excel(name = "字段描述")
    private String fieldDesc;

    /** 字段类型 */
    @Excel(name = "字段类型")
    private String fieldType;

    /** 字段枚举值 */
    @Excel(name = "字段枚举值")
    private String fieldEnums;

    /** 字典类型 */
    @Excel(name = "字典类型")
    private String dictType;

    /** 表单宽度（1~24） */
    @Excel(name = "表单宽度", readConverterExp = "1=~24")
    private Long formSpan;

    /** 是否必填 */
    @Excel(name = "是否必填")
    private String requiredStatus;

    /** 是否预留字段 */
    @Excel(name = "是否预留字段")
    private String reservedStatus;

    /** 组织状态（0正常 1停用） */
    @Excel(name = "组织状态", readConverterExp = "0=正常,1=停用")
    private String status;

    /** 显示顺序 */
    @Excel(name = "显示顺序")
    private Long orderNum;

    /** 创建人 */
    @Excel(name = "创建人")
    private Long createId;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    public void setFieldId(Long fieldId) 
    {
        this.fieldId = fieldId;
    }

    public Long getFieldId() 
    {
        return fieldId;
    }
    public void setTableId(Long tableId) 
    {
        this.tableId = tableId;
    }

    public Long getTableId() 
    {
        return tableId;
    }
    public void setFieldKey(String fieldKey) {
        this.fieldKey = fieldKey;
    }

    public String getFieldKey() {
        return fieldKey;
    }
    public void setFieldName(String fieldName)
    {
        this.fieldName = fieldName;
    }

    public String getFieldName() 
    {
        return fieldName;
    }
    public void setFieldDesc(String fieldDesc) 
    {
        this.fieldDesc = fieldDesc;
    }

    public String getFieldDesc() 
    {
        return fieldDesc;
    }
    public void setFieldType(String fieldType) 
    {
        this.fieldType = fieldType;
    }

    public String getFieldType() 
    {
        return fieldType;
    }
    public void setFieldEnums(String fieldEnums) 
    {
        this.fieldEnums = fieldEnums;
    }

    public String getFieldEnums() 
    {
        return fieldEnums;
    }
    public void setDictType(String dictType) {
        this.dictType = dictType;
    }

    public String getDictType() {
        return dictType;
    }
    public void setFormSpan(Long formSpan)
    {
        this.formSpan = formSpan;
    }

    public Long getFormSpan() 
    {
        return formSpan;
    }
    public void setRequiredStatus(String requiredStatus) 
    {
        this.requiredStatus = requiredStatus;
    }

    public String getRequiredStatus() 
    {
        return requiredStatus;
    }
    public void setReservedStatus(String reservedStatus) 
    {
        this.reservedStatus = reservedStatus;
    }

    public String getReservedStatus() 
    {
        return reservedStatus;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    public void setOrderNum(Long orderNum) 
    {
        this.orderNum = orderNum;
    }

    public Long getOrderNum() 
    {
        return orderNum;
    }
    public void setCreateId(Long createId) 
    {
        this.createId = createId;
    }

    public Long getCreateId() 
    {
        return createId;
    }
    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getTableName() {
        return tableName;
    }

    public void setTableName(String tableName) {
        this.tableName = tableName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("fieldId", getFieldId())
            .append("tableId", getTableId())
            .append("fieldName", getFieldName())
            .append("fieldDesc", getFieldDesc())
            .append("fieldType", getFieldType())
            .append("fieldEnums", getFieldEnums())
            .append("formSpan", getFormSpan())
            .append("requiredStatus", getRequiredStatus())
            .append("reservedStatus", getReservedStatus())
            .append("status", getStatus())
            .append("orderNum", getOrderNum())
            .append("createId", getCreateId())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("delFlag", getDelFlag())
            .toString();
    }
}
